package com.css.fxfzfxqh.modules.util.hypergraph.service;

import com.css.fxfzfxqh.base.response.RestResponse;
import com.css.fxfzfxqh.modules.util.hypergraph.entity.NetworkanalystVersion;

import java.util.List;
import java.util.Map;

/**
 * @Description: fxfzfxqh
 * @Author: zyt
 * @CreateDate: 2023/12/12 17:00
 * 超图
 */
public interface HypergraphService {
    //超图处理自动化服务
    public RestResponse getServerToken(Map<String, Object> map);

    //刷新指定超图工作空间数据源数据集
    public boolean getWorkspaceReload(String dataset);

    //获取超图服务token
    public String getToken();

    //SQL查询超图图层数据
    public RestResponse mapSqlQueryResultsPost(String layerUrl,String datasource, String dataset, String networkType, String sqlFilter);

    //下游追踪
    public RestResponse networkTracedown(String layerUrl, String nodeID, String edgeID, boolean isUncertainDirectionValid, boolean returnFeatures);

    //上游追踪
    public RestResponse networkTraceup(String layerUrl, String nodeID, String edgeID, boolean isUncertainDirectionValid, boolean returnFeatures);

    //爆管分析
    public RestResponse networkBurstanalyse(String layerUrl, String sourceNodeIDs, String nodeID, String edgeID, boolean isUncertainDirectionValid, boolean returnFeatures);

    //连通性分析
    public RestResponse networkConnectededges(String layerUrl, String nodeIDs, String edgeIDs, boolean connected, boolean returnFeatures);

    //工作空间发布交通网络分析服务
    public RestResponse newWorkspaceNetworkVersion(NetworkanalystVersion networkanalystVersion);

    //获取新的交通网络分析服务版本号
    public String getNetworkanalystVersionCode();

    //根据任务ID查询交通网络分析服务版本信息
    public NetworkanalystVersion getNetworkVersionByTaskId(String taskId);

    //根据ID查询交通网络分析服务版本信息
    public NetworkanalystVersion getNetworkVersionById(String id);

    //查询交通网络分析服务版本列表
    public RestResponse getNetworkVersionList(NetworkanalystVersion networkanalystVersion);

    //批量逻辑删除交通网络分析服务版本信息
    public RestResponse deleteNetworkanalystVersion(String idsStr);

    //根据任务ID逻辑删除交通网络分析服务版本信息
    public RestResponse deleteNetworkanalystVersionByTaskId(String taskId);

    //导出shp文件
    public String exportShpFile(String datasource,String dataset,String sqlFilter,String timeStamp);

    //网络拓扑计算功能失效等级
    public RestResponse countNetworkanalyst(NetworkanalystVersion networkanalystVersion);

    //查询生命线分析点、线数据的范围经纬度列表
    public List<List<Double>> getSmxEvaluationResultExtentLonLatList(String taskId,String qcType);
}
